In data communication systems, data packet processing for transmission and reception may go through different stages such as segmentation, concatenation or packing of the data packets on the transmission side and duplicate detection, reordering, and reassembly on the reception side. Also in some data communication systems, for reliable data transmission between the peers, an acknowledgement (positive or negative) based retransmission protocol known as Automatic Repeat Request (ARQ) may be used where each retransmission can further segment the previously transmitted data packets. This type of data processing may lead to high memory requirements and high processing requirements.
The services and features of data communication systems may be implemented in distinct layers. The data packets given by the application or upper layer of any protocol may be referred as Service Data Unit (SDU) and the data unit provided to the lower layer is referred to as Protocol Data Unit (PDU) as shown in FIG. 1. On the transmission side a protocol entity works on the SDU as the input and performs data packet processing. On the receiving side, a protocol entity works on a PDU as the input and performs data packet processing. The data packet processing on the transmission side may add headers or footers or both to the SDU. The data packet processing on the reception side may remove headers or footers or both from the PDU and provides an SDU to the application or upper layer.
There are many different scenarios in which an SDU may be processed by a protocol entity to generate PDUs using segmentation and packing. Examples of the data packet processing scenarios on transmission side are illustrated in FIG. 2. Examples of the processing scenarios illustrated in FIG. 2 include transmission of an SDU in a PDU without segmentation or packing, segmentation of an SDU and transmission in two different PDUs, and segments of two different SDUs packed and transmitted in a single PDU. In some cases, due to errors in transmission or reception, a PDU may need to be retransmitted. When a PDU is retransmitted, in order to match the available transmission resource size, it may have to be segmented into smaller size called PSU segments. This example is illustrated in FIG. 2 by the PDUm+4 which is retransmitted as a PDU segments PDUSx and PDUSx+1. Similarly, examples of the packet data processing scenarios on the reception side are illustrated FIG. 3. Examples of the processing scenarios illustrated in FIG. 3 include reception of an SDU in a PDU without unpacking or reassembly, reassembly of an SDU from reception of two different PDUs, unpacking of two different SDUs from a single PDU and reassembling an SDU from two different PDUs, and reassembling a retransmitted PDU from multiple PDU segments.